package com.algorithm.leetcode;


/**
 * 26. Remove Duplicates from Sorted Array
 * 问题描述：
 * 给定 nums = [0,0,1,1,1,2,2,3,3,4],
 *
 * 函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。
 *
 * 你不需要考虑数组中超出新长度后面的元素。
 *
 * 思路：使用两个游标i和j，j在i前面遍历整个数组，当i和j遍历到的数字不相同时，将i+1位置的数字设置为j遍历到的数字。
 */
public class RemovedDuplicatesFromSortedArray {

    public int removeDuplicates(int[] nums) {
       if(nums == null && nums.length < 1){
           return 0;
       }

       int i = 0;

       for(int j = 1;j<nums.length;j++){
           if(nums[i] != nums[j]){
               //只有匹配到i和j位置的数字不相等时才移动i
               i++;
               nums[i] = nums[j];
           }
       }

       return i + 1;
    }

}
